0,        '##########################################################
1,        '# ELUTE_WATER_SBD_API
2,        '# DATE/VERSION  : 2026.05.19 Optimized
3,        '# Parameters:
4,        '#   ELUTE_1 : Draw/Spit volume Elution Buffer     (e.g. 450)
5,        '#   ELUTE_2 : Transfer volume MG -> X_EL          (e.g. 550)
6,        '#   ELUTE_3 : Rinse / MIX volume                  (e.g. 300)
7,        '#   ELUTE_4 : Final draw/spit volume to PRODUCT   (e.g. 500)
8,        '##########################################################
9,        '=== [1] Take Elution Buffer from WELL_8 ===
10,      Display( " WELL(8) ELUTION BUFFER " )
11,      ME(ME_LOW)
12,      Mov(X_WELL_8,SLOW)
13,      Mov(V_INITIAL_2,SPEED_V)
14,      Mov(Y_WELL_HIGH,SPEED_V)
15,      Mov(Y_WELL_4000,SPEED_V)
16,      Draw(ELUTE_1,SLOW)
17,      Delay(50)
18,      Mov(Y_0,SPEED_V)
19,      '=== [2] Resuspend Beads in HEATER_2 ===
20,      Display( " ELUTION RESUSPEND BEADS " )
21,      Mov(X_HEATER_2,SLOW)
22,      Mov(Y_WELL_MIX,SPEED_V)
23,      Spit(ELUTE_1,VSLOW)
24,      Mov(Y_MG_BOTTOM,SPEED_V)
25,      '=== [3] Rinse x5: HEATER_2 <-> HEATER_2_RINSE ===
26,      For (i=0 ; i<5; i++)
27,      {
28,      Mov(Y_MG_MIX,SLOW)
29,      Draw(ELUTE_3,SLOW)
30,      Delay(10)
31,      Mov(Y_WELL_3000,SLOW)
32,      Mov(X_HEATER_2_RINSE,VSLOW)
33,      Spit(ELUTE_3,SLOW)
34,      Delay(10)
35,      Mov(X_HEATER_2,VSLOW)
36,                 }
37,      For End
38,      '=== [4] MIX x3 (bottom / mix / bottom) ===
39,      Mov(Y_MG_BOTTOM,SPEED_V)
40,      MIX_API(ELUTE_3,300,10,SLOW,SLOW)
41,      Delay(10)
42,      Mov(X_HEATER_2,SLOW)
43,      Mov(Y_MG_MIX,SPEED_V)
44,      MIX_API(ELUTE_3,300,10,SLOW,SPEED_V)
45,      Mov(X_HEATER_2,SLOW)
46,      Mov(Y_MG_BOTTOM,SPEED_V)
47,      MIX_API(ELUTE_3,300,10,SLOW,SPEED_V)
48,      '=== [5] Spit 1000uL to clear excess ===
49,      Mov(Y_MG_MIX_HIGH,SPEED_V)
50,      Spit(1000,VSLOW)
51,      Delay(20)
52,      Mov(Y_0,SPEED_V)
53,      '=== Transfer step6 and 7to WASH_H2_WELL_(1000)_API ===
54,      '=== [8] Rinse x5 (2nd round) ===
55,      Mov(X_HEATER_2,SLOW)
56,      Mov(Y_MG_BOTTOM,SPEED_V)
57,      For (i=0 ; i<5; i++)
58,      {
59,      Mov(Y_MG_MIX,VSLOW)
60,      Draw(ELUTE_3,SLOW)
61,      Delay(10)
62,      Mov(Y_WELL_3000,SLOW)
63,      Mov(X_HEATER_2_RINSE,VSLOW)
64,      Spit(ELUTE_3,SLOW)
65,      Delay(10)
66,      Mov(X_HEATER_2,VSLOW)
67,                 }
68,      For End
69,      '=== [9] Final MIX + Draw DNA ===
70,      Mov(Y_MG_BOTTOM,SPEED_V)
71,      MIX_API(ELUTE_3,60,10,SLOW,SLOW)
72,      Delay(10)
73,      Mov(Y_MG_BOTTOM,SPEED_V)
74,      Draw(ELUTE_2,VSLOW)
75,      Mov(Y_WELL_3000,SPEED_V)
76,      Draw(100,VSLOW)
77,      Mov(Y_0,SPEED_V)
78,      '=== [10] ELUTION SEPARATION (magnetic separation) ===
79,      Display( " ELUTION SEPARATION " )
80,      Mov(X_MG_RINSE,SPEED_V)
81,      Mov(Y_MG_MIX_HIGH,SLOW)
82,      ME(ME_UP)
83,      Spit(750,VSLOW)
84,      Delay(900)
85,      Mov(X_MG_BOTTOM,SLOW)
86,      Mov(Y_MG_BOTTOM,SLOW)
87,      Draw(ELUTE_2,VSLOW)
88,      Delay(20)
89,      '=== [11] Intermediate transfer: MG -> HEATER_2_DRAW -> MG ===
90,      Mov(Y_0,SPEED_V)
91,      Mov(X_HEATER_2_DRAW,SLOW)
92,      Mov(Y_WELL_MIX,SPEED_V)
93,      Spit(ELUTE_2,VSLOW)
94,      Delay(20)
95,      Spit(200,VSLOW)
96,      Delay(10)
97,      Mov(Y_WELL_3000,SPEED_V)
98,      Delay(900)
99,      Mov(X_HEATER_2,SLOW)
100,     Mov(Y_MG_BOTTOM,SLOW)
101,     Draw(ELUTE_2,VSLOW)
102,     Delay(50)
103,     Mov(Y_0,SPEED_V)
104,     '=== [12] Transfer to X_EL ===
105,     Mov(X_EL_RINSE,SLOW)
106,     Mov(Y_WELL_4000,SPEED_V)
107,     Mov(Y_WELL_LOW,VSLOW)
108,     Spit(ELUTE_1,ELSLOW)
109,     Delay(30)
110,     Mov(Y_WELL_LOW,VSLOW)
111,     Mov(X_EL_BOTTOM,SLOW)
112,     Spit(150,ELSLOW)
113,     Mov(Y_WELL_3000,SPEED_V)
114,     Spit(200,SPEED_V)
115,     Mov(Y_WELL_HIGH,SPEED_V)
116,     Mov(V_INITIAL_1,SPEED_V)
117,     Mov(Y_0,SPEED_V)
118,     '=== [13] Wash Tip in WELL_8 ===
119,     ME(ME_UP)
120,     Display( " WASH TIP " )
121,     Mov(X_WELL_8,SLOW)
122,     Mov(Y_WELL_MIX,SPEED_V)
123,     MIX_API(3000,5,1,SPEED_V,SPEED_V)
124,     Draw(3000,SPEED_V)
125,     Mov(Y_WELL_5000,SPEED_V)
126,     Spit(3200,SLOW)
127,     Delay(10)
128,     Mov(Y_WELL_HIGH,SPEED_V)
129,     Delay(100)
130,     Spit(150,SLOW)
131,     Delay(10)
132,     Mov(V_INITIAL_1,SPEED_V)
133,     Delay(10)
134,     Mov(Y_0,SPEED_V)
135,     '=== [14] Transfer Eluted Product to X_PRODUCT ===
136,     Display( " TRANSFER ELUTED PRODUCT " )
137,     Mov(X_EL_BOTTOM,SPEED_V)
138,     Mov(Y_EL_BOTTOM,SLOW)
139,     Delay(30)
140,     Draw(ELUTE_4,VSLOW)
141,     Delay(50)
142,     Mov(Y_EL_RINSE,SLOW)
143,     Delay(20)
144,     Mov(Y_EL_BOTTOM,SLOW)
145,     Draw(50,VSLOW)
146,     Delay(30)
147,     Mov(Y_0,SPEED_V)
148,     ME(ME_LOW)
149,     Mov(X_PRODUCT,SPEED_V)
150,     Mov(Y_PRODUCT_BOTTOM,SPEED_V)
151,     Spit(ELUTE_4,VSLOW)
152,     Delay(20)
153,     Mov(Y_PRODUCT_200_500,SLOW)
154,     Mov(X_PRODUCT_SPILT,VSLOW)
155,     Spit(100,SLOW)
156,     Delay(10)
157,     ME(ME_LOW)
158,     Mov(Y_0,SPEED_V)


